/*
 * @Author: enmotion 
 * @Date: 2023-11-13 10:03:47 
 * @Last Modified by: enmotion
 * @Last Modified time: 2023-12-06 15:11:29
 */

// @ts-ignore
import ModStore from "mod-store";
import type Theme from "@src/comps/common/vmo-layout/types"

/**
 * 系统持久化缓存数据配置
 */

const store:{
  $data:{
    userToken:Record<string,any>,
    userInfo:Record<string,any>,
    theme:{
      colors:Partial<Theme.Colors>,
      steps:Partial<Theme.Steps>
    },
    dynamicRoutes:any[],
    userMenu:any[],
  }
} = new ModStore({
    namespace:`${import.meta.env.VITE_APP_NAME}.${import.meta.env.VITE_APP_VERSION}`,
    props:{
      userToken:{
        type:Object,
        method:`${(import.meta.env.VITE_APP_CATCH_SHARETAB)?'L':'S'}`,
        default:{},
      },
      userInfo:{
        type:Object,
        method:`${(import.meta.env.VITE_APP_CATCH_SHARETAB)?'L':'S'}`,
        default:{},
      },
      // 主题缓存配置
      theme:{
        type:Object,
        method:`${(import.meta.env.VITE_APP_CATCH_SHARETAB)?'L':'S'}`,
        default:{
          colors:{
            'primary': import.meta.env.VITE_APP_THEME_PRIMARY || '#409EFF',
            'danger': import.meta.env.VITE_APP_THEME_DANGER || '#F56C6C',
            'error': import.meta.env.VITE_APP_THEME_ERROR || '#F56C6C',
            'success': import.meta.env.VITE_APP_THEME_SUCCESS || '#67C23A',
            'warning': import.meta.env.VITE_APP_THEME_WARNING || '#E6A23C',
            'info': import.meta.env.VITE_APP_THEME_INFO || '#909399',
            'accent':import.meta.env.VITE_APP_THEME_ACCENT || '#409EFF'
          },
          steps:{
            '-dark-2': 8,
            '-light-3': 0.9,
            '-light-5': 0.7,
            '-light-7': 0.5,
            '-light-8': 0.3,
            '-light-9': 0.1,
          }
        }
      },
      // 动态路由加载缓存配置
      dynamicRoutes:{
        type:Array,
        method:`${(import.meta.env.VITE_APP_CATCH_SHARETAB)?'L':'S'}`,
        default:[]
      },
      // 动态路由加载缓存配置
      userMenu:{
        type:Array,
        method:`${(import.meta.env.VITE_APP_CATCH_SHARETAB)?'L':'S'}`,
        default:[]
      } 
    },
    key: process.env.NODE_ENV == 'development' ? undefined : "UIk#2uIeDEK%13eP"
  })
  export default store